/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package estates.model;

import estates.facade.FabrykaStandard;
import estates.facade.Fasada1;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Random;

/**
 *
 * @author Artur
 */
public class Main {

	private static ArrayList<Estate> kolekcjaOfert = new ArrayList<Estate>();
	private static Fasada1 fasada1 = new Fasada1(new ArrayList<Comment>(), new ArrayList<Estate>(), new ArrayList<User>());

	public static void main(String[] args) {
		stworzOferte();
		szukajOfert();

		//if (true) {return;}
		HashMap<String, Object> komentarz = new HashMap<String, Object>();
		komentarz.put("title", "Tytul komentarza");
		komentarz.put("content", "Tresc komentarza");
		HashMap<String, Object> user = new HashMap<String, Object>();
		user.put("login","login1");
		user.put("additionalInf","");
		user.put("city","city1");
		user.put("pesel","pesel1"); //---> do eqals
		user.put("houseNr","Nr1");
		user.put("mail","a@pwr.wroc.pl");
		user.put("NIP","123456789");
		user.put("name","name1");
		user.put("password","password1");
		user.put("phone","phone1");
		user.put("postCode","postCode1");
		user.put("regon","region1");
		user.put("street","street1");
	    user.put("userType",UserTypes.normal);
	    //minimalny zbior zeby go znalezc

		HashMap<String, Object> oferta = new HashMap<String, Object>();
		oferta.put("numer_oferty", 0);
		oferta.put("typ_oferty", 2);
		oferta.put("cena", 20);
		oferta.put("powierzchnia", 10);
		oferta.put("polozenie", 5);
		oferta.put("wojewodztwo", "Dolnośląskie");
		oferta.put("miejscowosc", "Wrocław");
        oferta.put("opis", "Bardzo ładne mieszkanie");
        oferta.put("ksiega_wieczysta", 123);

        oferta.put("typ_lokalu", 0);
        oferta.put("liczba_lazieniek", 2);
        oferta.put("pietro", 3);
        oferta.put("czy_rozkladowy", true);
        oferta.put("forma_wlasnosci", "Mieszkanie własnościowe");
        oferta.put("numer_lokalu", 0);

        oferta.put("rok_budowy", 1900);
        oferta.put("stan_prawny", "wynajęty");
        oferta.put("liczba_pieter", 3);
        oferta.put("liczba_pokoi", 4);
        oferta.put("stan_budynu", 0);
        oferta.put("typ_zabudowy", 1);
        oferta.put("dzielnica", "Wiejska");
        oferta.put("ulica", "Wróblewskiego");
        oferta.put("kod_pocztowy", 41106);
        oferta.put("numer_budynku", 3);

		komentarz.put("nip", "234123");
		komentarz.put("numer_oferty", "0");

		komentarz.put("ocenaKomfort", "9");
		komentarz.put("ocenaEstetyka", "7");
		komentarz.put("ocenaLokalizacja", "8");
        Comment com = fasada1.Dodajkomentarz(komentarz);

		HashMap<String, Object> komentarz2 = new HashMap<String, Object>();

		komentarz2.put("title", "Tytul komentarza");
		komentarz2.put("content", "Tresc komentarza");

		komentarz2.put("nip", "234123");
		komentarz2.put("numer_oferty", "0");

		komentarz2.put("ocenaKomfort", "4");
		komentarz2.put("ocenaEstetyka", "6");
		komentarz2.put("ocenaLokalizacja", "7");

		fasada1.Dodajkomentarz(komentarz2);

		Random rand = new Random();

		HashMap<String, Object> komentarz3 = new HashMap<String, Object>();

		komentarz3.put("title", "Tytul komentarza");
		komentarz3.put("content", "Tresc komentarza");

		komentarz3.put("nip", "234123");
		komentarz3.put("numer_oferty", "0");

		komentarz3.put("ocenaKomfort", Integer.toString(rand.nextInt(10) + 1));
		komentarz3.put("ocenaEstetyka", Integer.toString(rand.nextInt(10) + 1));
		komentarz3.put("ocenaLokalizacja", Integer.toString(rand.nextInt(10) + 1));

		fasada1.Dodajkomentarz(komentarz3);

		System.out.println("Tytuł:" + com.getTitle());
		System.out.println("Tresc:" + com.getContent());
		System.out.println(com.getUser().toString());
		System.out.println("oceny:");
		System.out.println(fasada1.srednieOceny("0").toString());
	}

	private static void szukajOfert()
	{
		//System.out.println("szukajOfert");
		FabrykaStandard instance1 = new FabrykaStandard();
        HashMap<String, Object> hm = new HashMap<String, Object>();

        hm.put("wojewodztwo", "Dolnośląskie");
		//hm.put("wojewodztwo", "Dolnośie");
        hm.put("typ_oferty", 2);

    	Estate estate = instance1.stworzOferte(hm);

        ArrayList<Estate> results=fasada1.wyszukaj(estate);
        System.out.println(results.size());
	}

    private static void stworzOferte()
    {
    	//System.out.println("stworzOferte");
        HashMap<String, Object> hm = new HashMap<String, Object>();
        HashMap<String, Object> hm1 = new HashMap<String, Object>();

        hm.put("numer_oferty", 0);
        hm.put("typ_oferty", 2);
        hm.put("cena", 20);
        hm.put("powierzchnia", 10);
        hm.put("polozenie", 5);
        hm.put("wojewodztwo", "Dolnośląskie");
        hm.put("miejscowosc", "Wrocław");
        hm.put("opis", "Bardzo ładne mieszkanie");
        hm.put("ksiega_wieczysta", 123);

        hm.put("typ_lokalu", 0);
        hm.put("liczba_lazieniek", 2);
        hm.put("pietro", 3);
        hm.put("czy_rozkladowy", true);
        hm.put("forma_wlasnosci", "Mieszkanie własnościowe");
        hm.put("numer_lokalu", 0);

        hm.put("rok_budowy", 1900);
        hm.put("stan_prawny", "wynajęty");
        hm.put("liczba_pieter", 3);
        hm.put("liczba_pokoi", 4);
        hm.put("stan_budynu", 0);
        hm.put("typ_zabudowy", 1);
        hm.put("dzielnica", "Wiejska");
        hm.put("ulica", "Wróblewskiego");
        hm.put("kod_pocztowy", 41106);
        hm.put("numer_budynku", 3);


        hm1.put("login","login1");
        hm1.put("additionalInf","");
        hm1.put("city","city1");
        hm1.put("pesel","pesel1");
        hm1.put("houseNr","Nr1");
        hm1.put("mail","a@pwr.wroc.pl");
        hm1.put("nip","123456789");
        hm1.put("name","name1");
        hm1.put("password","password1");
        hm1.put("phone","phone1");
        hm1.put("postCode","postCode1");
        hm1.put("regon","region1");
        hm1.put("street","street1");
        hm1.put("userType",0);

        User user = fasada1.stworzUsera(hm1);

        Estate result=fasada1.Dodajoferte(hm, hm1);
        kolekcjaOfert.add(result);

		hm1.clear();
		hm1.put("login","login1");
        hm1.put("additionalInf","");
        hm1.put("city","city1");
        hm1.put("pesel","pesel1");
        hm1.put("houseNr","Nr1");
        hm1.put("mail","a@pwr.wroc.pl");
        hm1.put("nip","234123");
        hm1.put("name","name1");
        hm1.put("password","password1");
        hm1.put("phone","phone1");
        hm1.put("postCode","postCode1");
        hm1.put("regon","region1");
        hm1.put("street","street1");
        hm1.put("userType",0);

       user = fasada1.stworzUsera(hm1);

        result=fasada1.Dodajoferte(hm, hm1);
        kolekcjaOfert.add(result);

        HashMap<String, Object> hmm = new HashMap<String, Object>();
        HashMap<String, Object> hmm1 = new HashMap<String, Object>();

        hmm.put("numer_oferty", 1);
        hmm.put("typ_oferty", 2);
        hmm.put("cena", 230);
        hmm.put("powierzchnia", 140);
        hmm.put("polozenie", 55);
        hmm.put("wojewodztwo", "Dolnośląskie");
        hmm.put("miejscowosc", "Wrocław");
        hmm.put("opis", "Bardzo ładne mieszkanie");
        hmm.put("ksiega_wieczysta", 123);

        hmm.put("typ_lokalu", 0);
        hmm.put("liczba_lazieniek", 22);
        hmm.put("pietro", 3);
        hmm.put("czy_rozkladowy", true);
        hmm.put("forma_wlasnosci", "Mieszkanie własnościowe");
        hmm.put("numer_lokalu", 0);

        hmm.put("rok_budowy", 1910);
        hmm.put("stan_prawny", "wynajęty");
        hmm.put("liczba_pieter", 3);
        hmm.put("liczba_pokoi", 4);
        hmm.put("stan_budynu", 0);
        hmm.put("typ_zabudowy", 1);
        hmm.put("dzielnica", "Wiejska");
        hmm.put("ulica", "Wróblewskiego");
        hmm.put("kod_pocztowy", 40106);
        hmm.put("numer_budynku", 3);

        Estate result2=fasada1.Dodajoferte(hmm, hm1);
        kolekcjaOfert.add(result2);

        for(int i=0;i<20;i++){
            hmm.clear();
            hmm.put("numer_oferty", i+2);
            hmm.put("typ_oferty", 2);
            hmm.put("cena", 230+i);
            hmm.put("powierzchnia", 140);
            hmm.put("polozenie", 55);
            hmm.put("wojewodztwo", "Dolnośląskie");
            hmm.put("miejscowosc", "Wrocław");
            hmm.put("opis", "Bardzo ładne mieszkanie");
            hmm.put("ksiega_wieczysta", 123);

            hmm.put("typ_lokalu", 0);
            hmm.put("liczba_lazieniek", 22);
            hmm.put("pietro", 3);
            hmm.put("czy_rozkladowy", true);
            hmm.put("forma_wlasnosci", "Mieszkanie własnościowe");
            hmm.put("numer_lokalu", 0);

            hmm.put("rok_budowy", 1910);
            hmm.put("stan_prawny", "wynajęty");
            hmm.put("liczba_pieter", 3);
            hmm.put("liczba_pokoi", 4);
            hmm.put("stan_budynu", 0);
            hmm.put("typ_zabudowy", 1);
            hmm.put("dzielnica", "Wiejska");
            hmm.put("ulica", "Wróblewskiego");
            hmm.put("kod_pocztowy", 40106);
            hmm.put("numer_budynku", 3);
            result = fasada1.Dodajoferte(hmm, hm1);
            kolekcjaOfert.add(result);
        }
    }

}
